<?php
require_once('parametros/dao_parametros.php');
require_once('excepcion.php');
class ci_municipio extends bapim_ci
{
	//-----------------------------------------------------------------------------------
	//---- Configuraciones --------------------------------------------------------------
	//-----------------------------------------------------------------------------------
	//Variables
		protected $s__datos_filtro;
		protected $s__where;
	
	
	//-----------------------------------------------------------------------------------
	//---- Eventos ----------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function evt__nuevo()
	{
		$this->set_pantalla('pant_edicion');
	}

	//-----------------------------------------------------------------------------------
	//---- cuadro -----------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__cuadro(bapim_ei_cuadro $cuadro)
	{
		if (isset($this->s__datos_filtro)) {
				$datos = dao_parametros::get_listado_municipio($this->s__where);
			} else {
				$datos = dao_parametros::get_listado_municipio();
			}
		$cuadro->set_datos($datos);
	}

	function evt__cuadro__seleccion($seleccion)
	{
		$this->cn()->cargar_municipio($seleccion);
		$id_memoria = $this->cn()->traer_id_memoria_municipio($seleccion);
		$this->cn()->set_cursor_municipio($id_memoria[0]);
		$this->set_pantalla('pant_edicion');
	}

	function evt__cuadro__borrar($seleccion)
	{
		$this->cn()->cargar_municipio($seleccion);
		$id_memoria = $this->cn()->traer_id_memoria_municipio($seleccion);
		$this->cn()->eliminar_municipio($id_memoria[0]);
		try{
			$this->cn()->guardar();
		}catch (toba_error_db $error) {
			$codigo = $error->get_sqlstate();
			excepcion::get_mensaje_error($codigo, ' Municipio ', ' El ');
			$this->cn()->resetear();
		}
	}

	//-----------------------------------------------------------------------------------
	//---- filtro -----------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__filtro(bapim_ei_filtro $filtro)
	{
		if (isset($this->s__datos_filtro)) {
			$filtro->set_datos($this->s__datos_filtro);
			$this->s__where = $filtro->get_sql_where();
		}
	}

	function evt__filtro__filtrar($datos)
	{
		$this->s__datos_filtro = $datos;
	}

	function evt__filtro__cancelar()
	{
		unset($this->s__datos_filtro);
	}

	//-----------------------------------------------------------------------------------
	//---- frm --------------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__frm(bapim_ei_formulario $form)
	{
		if ($this->cn()->hay_cursor_municipio()) {
			$datos = $this->cn()->get_municipio();
			$form->set_datos($datos); 
		}
	}

	function evt__frm__alta($datos)
	{
		$this->cn()->set_municipio($datos);
				
		try{
			$this->cn()->guardar();	
		}catch (toba_error_db $error) {
				$codigo = $error->get_sqlstate();
				excepcion::get_mensaje_error($codigo, ' Municipio ', ' EL ');
				$this->cn()->resetear();
		}
		$this->set_pantalla('pant_inicial');
	}

	function evt__frm__modificacion($datos)
	{
		if ($this->cn()->hay_cursor_municipio()) {
			$this->cn()->set_municipio($datos);
			try{
				$this->cn()->guardar();	
			}catch (toba_error_db $error) {
				$sql_state = $error->get_sqlstate();
				$codigo = $error->get_sqlstate();
				excepcion::get_mensaje_error($codigo, ' Municipio ', ' El ');
				$this->cn()->resetear();
			}
			$this->set_pantalla('pant_inicial');
		}
	}

	function evt__frm__cancelar()
	{
		$this->cn()->resetear();
		$this->set_pantalla('pant_inicial');
	}
}

?>
